import request from '@/utils/request';

/**
 * 上传文件
 * @param {File} file - 要上传的文件
 * @returns {Promise} - 上传结果的 Promise
 */
export function uploadFile(file) {
  const formData = new FormData();
  formData.append('file', file);

  return request({
    url: '/system/minio/upload',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
}

/**
 * 下载文件
 * @param {string} fileName - 要下载的文件名
 * @returns {Promise} - 下载结果的 Promise
 */
export function downloadFile(fileName) {
  return request({
    url: `/system/minio/download/${fileName}`,
    method: 'get',
    responseType: 'blob' // 确保返回的类型为 Blob（用于下载）
  });
}

/**
 * 删除文件
 * @param {string} fileName - 要删除的文件名
 * @returns {Promise} - 删除结果的 Promise
 */
export function deleteFile(fileName) {
  return request({
    url: `/system/minio/delete/${fileName}`,
    method: 'delete'
  });
}

/**
 * 列出所有文件
 * @returns {Promise} - 包含文件列表的 Promise
 */
export function listFiles() {
  return request({
    url: '/system/minio/list',
    method: 'get'
  });
}
